package com.xinqi.modules.prepare.notice.service;

import com.xinqi.common.base.response.PageInfo;
import com.xinqi.common.base.response.Param;
import com.xinqi.modules.prepare.common.dto.data.PrepareNoticeData;
import com.xinqi.modules.prepare.notice.dto.req.PrepareNoticeCreateDTO;
import com.xinqi.modules.prepare.notice.dto.req.PrepareNoticeDeleteDTO;
import com.xinqi.modules.prepare.notice.dto.req.PrepareNoticeQueryDTO;
import com.xinqi.modules.prepare.notice.dto.req.PrepareNoticeUpdateDTO;
import com.xinqi.modules.prepare.notice.dto.rsp.PrepareNoticeResultDTO;

import javax.validation.Valid;
import java.util.List;

/**
 * 备课区公告服务层
 *
 * @author: system
 * @date: 2023/03/19
 */
public interface PrepareNoticeService {
    /**
     * 分页查询 备课区公告数据
     */
    PageInfo<PrepareNoticeResultDTO> page(Param pageable, PrepareNoticeQueryDTO query);

    /**
     * 查询 备课区公告数据
     */
    List<PrepareNoticeResultDTO> find(PrepareNoticeQueryDTO query);

    /**
     * 根据id查询 备课区公告数据
     */
    PrepareNoticeResultDTO findById(Long id);

    PrepareNoticeData find(Long id);

    /**
     * 新增 备课区公告数据
     */
    Long insert(@Valid PrepareNoticeCreateDTO dto);

    /**
     * 导入 备课区公告数据
     */
    Long insert(@Valid PrepareNoticeData dto);

    /**
     * 根据id修改 备课区公告数据
     */
    Boolean updateById(@Valid PrepareNoticeUpdateDTO dto);

    /**
     * 根据id删除 备课区公告数据
     */
    Boolean deleteById(Long id);

    /**
     * 根据id删除 备课区公告数据
     */
    Boolean deleteById(PrepareNoticeDeleteDTO dto);
}
